Preparativos.
Carga de los paquetes.
library(sf)
library(raster)
library(leaflet)
library(leaflet.extras)
library(dplyr)
library(DT)
Carga de los datos.
#carga de los registros de presencia de las orquideas
orquideas <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/orchidaceae-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Carga de la capa de ASP
ASP <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/sinac/asp/asp-wgs84.geojson",
quiet = TRUE
)
# Sistema de coordenadas
st_crs(orquideas) = 4326
st_crs(ASP) = 4326
Limpieza de los datos.
orquideas <-
orquideas %>%
mutate(coordinateUncertaintyInMeters = as.numeric(coordinateUncertaintyInMeters)) %>%
mutate(eventDate = as.Date(eventDate, "%Y-%m-%d"))
orquideas$species[orquideas$species == ""] <- "orquideas"
cat("Cantidad original de registros: ", nrow(orquideas))
## Cantidad original de registros: 29863
orquideas <- orquideas %>%
filter(!is.na(coordinateUncertaintyInMeters) & coordinateUncertaintyInMeters <= 1000)%>%
filter(species!="orquideas")
cat("Cantidad de registros después de descartar los datos poco precisos: ", nrow(orquideas))
## Cantidad de registros después de descartar los datos poco precisos: 646
cat("Cantidad original de registros de ASP: ", nrow(ASP))
## Cantidad original de registros de ASP: 171
ASP <- ASP %>%
filter(descripcio!="Area Marina de Manejo" & descripcio!="Area marina protegida")
cat("Cantidad de registros después de descartar las áreas marinas: ", nrow(ASP))
## Cantidad de registros después de descartar las áreas marinas: 148
# st_join()
ASP_registros <-
ASP %>%
st_make_valid() %>%
st_join(orquideas) %>%
group_by(nombre_asp) %>%
summarize(especies = n())
# Asignación de sistema de coordenadas
st_crs(ASP_registros) = 4326
Mapa leaflet.
# Paleta de color azules
pal_especies <-
colorNumeric(palette = "PuBuGn",
domain = ASP_registros$especies,
na.color = "transparent")
leaflet() %>%
setView(lng = -84.0, lat = 10.0, zoom = 7) %>%
addProviderTiles(providers$CartoDB.Positron, group = "Grey Open Street Map") %>%
addPolygons(
data = ASP_registros,
fillColor = ~ pal_especies (ASP_registros$especies),
fillOpacity = 0.9,
stroke = TRUE,
color = "black",
weight = 1,
popup = paste(
paste(
"<strong>Localidad:</strong>",
ASP_registros$nombre_asp
),
paste(
"<strong>Cantidad de especies de orquídeas:</strong>",
ASP_registros$especies
),
sep = '<br/>'
),
group = "Localidad y especies"
) %>%
addLayersControl(baseGroups = c("Grey Open Street Map"),
overlayGroups = c("Localidad y especies")) %>%
addLegend(
position = "bottomleft",
pal = pal_especies,
values = ASP_registros$especies,
group = "Localidad y especies",
title = "Cantidad de <br> especies de <br> orquídeas")